package com.cy.study.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.cy.study.common.BasePageReq;
import com.cy.study.entity.PushRecordEntity;
import com.cy.study.req.AddPushReq;
import com.cy.study.req.HandlePushPlanReq;
import com.cy.study.req.PushPageReq;
import com.cy.study.res.PushDetailRes;
import com.cy.study.res.PushPageRes;
import com.cy.study.res.UserCenterPagePushRes;
import com.cy.study.res.UserCenterPushDetailRes;

public interface PushRecordService extends IService<PushRecordEntity> {

    /**
     * 推送列表
     * @param req
     * @return
     */
    Page<PushPageRes> pagePush(PushPageReq req);

    /**
     * 手动发动推送
     * @param req
     * @return
     */
    void handlePushPlan(HandlePushPlanReq req);

    /**
     * 自动推送
     */
    void autoPushPlan();

    /**
     * 管理端推送详情
     * @param pushRecordId
     * @return
     */
    PushDetailRes detail(Integer pushRecordId);

    /**
     * 用户中心查看推送
     * @param req
     * @return
     */
    Page<UserCenterPagePushRes> userCenterPagePush(BasePageReq req);

    /**
     * 用户中心推送详情
     * @param pushId
     * @return
     */
    UserCenterPushDetailRes userCenterPushDetail(Integer pushId);
}
